package org.javahispano.javacup.tacticas_aceptadas.Pencerval.com.viavansi.javacup.impactos;

import java.util.List;

import org.javahispano.javacup.modelo.Comando;
import org.javahispano.javacup.modelo.ComandoGolpearBalon;
import org.javahispano.javacup.modelo.ComandoIrA;
import org.javahispano.javacup.modelo.Constantes;
import org.javahispano.javacup.modelo.Posicion;
import org.javahispano.javacup.modelo.SituacionPartido;

public class Impactos {
	public static void impactarBalon(SituacionPartido sp,List<Comando> comandos) {
		int[] puedenRematar=sp.puedenRematar();
		for (int cont=0;cont<puedenRematar.length;cont++) {
			//System.out.println(puedenRematar[cont]);
		}
		
		Posicion posicionJugadorConBalon=null;
		boolean paseOTiro=false;
		for (int i : puedenRematar) {
			posicionJugadorConBalon=sp.misJugadores()[i];
			int[] masCercanos=posicionJugadorConBalon.indicesMasCercanos(sp.misJugadores());
			for (int j : masCercanos) {
				if(j!=i){
					if(posicionJugadorConBalon.distancia(Constantes.centroArcoSup) < 30){
						Tiros.tirar(i,sp,comandos,posicionJugadorConBalon.distancia(Constantes.centroArcoSup));
						paseOTiro=true;
						break;
					}else if(posicionJugadorConBalon.getY()+2<sp.misJugadores()[j].getY()/* && posicionJugadorConBalon.distancia(sp.misJugadores()[j])>3*/){
						Pases.pasar(i,j,sp, comandos);
						paseOTiro=true;
						break;
					}
				}
			}
			for (int j : masCercanos) {
				if(posicionJugadorConBalon.getY()+2<sp.misJugadores()[j].getY() && posicionJugadorConBalon.distancia(sp.misJugadores()[j])>3){
					Pases.pasar(i,j,sp, comandos);
					paseOTiro=true;
					break;
				}
			}
			if(!paseOTiro && !sp.saco()){
					comandos.add(new ComandoIrA(i, Constantes.centroArcoSup));
			    	//comandos.add(new ComandoGolpearBalon(i));
			}

		}
	}
}
